#ifndef CHARACTERTOOLMAINWINDOW_H
#define CHARACTERTOOLMAINWINDOW_H

#include <QMainWindow>

#include "ui_dnd.h"

class CharacterData;
class AddClass;
class AddPower;
class AddFeat;
class AddRaceDialog;
class AddSkill;
class AddTrait;

namespace Ui {
    class CharacterSheet;
    class Dnd;
}

class CharacterToolMainWindow : public QMainWindow
{
    Q_OBJECT
public:
    CharacterToolMainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0);
    virtual ~CharacterToolMainWindow();

private Q_SLOTS:
    void on_actionPrint_triggered();
    void configureDataPath();
    void checkInitialCondition();
    void on_actionAbout_triggered();
    void on_actionNew_triggered();
    void on_actionSheet_triggered();

    void showClassDialog();
    void showFeatDialog();
    void showPowerDialog();
    void showRaceDialog();
    void showSkillDialog();
    void showTraitDialog();
    void showPreferencesDialog();

private:
    void load(const QString &);
    bool ensureDataDirectory();

    Ui::CharacterSheet *mSheet;
    Ui::Dnd *mUi;
    CharacterData *mCharacterData;
};

#endif // CHARACTERTOOLMAINWINDOW_H
